Field of the Invention
The present invention relates generally to data networks, and more particularly to components of a data network to determine a health score of a server.
Description of the Related Art
The tremendous growth of networked clients such as smartphones and tablets has led to a large growth of network services. Many network services require deployment of a substantial number of servers and server load balancers to handle the service load. It is not uncommon to see thousands of servers used for a single popular application such as a mobile messaging application, a mobile photo application, an Internet radio or music streaming services, or a multi-person online game. In such service deployment situations, the load put on the servers is not necessarily even and is often a function of service policies of connected server load balancers (SLB), traffic managers, or application delivery controllers (ADC). When a server becomes busy, it is desirable for an ADC to detect the situation and select a more available server for new service requests. In addition, servers may fail or be taken off the service by a network administrator for maintenance reasons. It is important for an ADC to be aware of such situations and to select other servers to handle the traffic.
Typically, an ADC is connected to all servers and often detects the health of all servers directly. Upon knowing the servers' health after the detection, the SLB or ADC would adjust their service application processing accordingly. Such direct detection mechanism works well when there are few servers. However, when there are thousands of servers, the computing and resource effort to check the servers' health will consume a significant part of available resources of the ADC. Since a typical service network may have another ADC, it would be advantageous to share the load of detecting the servers' health. An ADC can be assigned to check the health of a portion of the servers while it relies on other ADCs to determine the health of other servers.
It should be apparent from the foregoing that there is a need to provide a distributed method to determine the health of a server.